x86: Implement per-cpu vector for xen hypervisor
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 19 Aug 2009 11:53:46 +0000 (12:53 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 19 Aug 2009 11:53:46 +0000 (12:53 +0100)
commit487a1cffd71a34d729c05c9a379ff05ea39b9fe2
treef049fe8aaeee2f2abdf21e49e176a6f993bf84ce
parentb07b22f961709fc4639b550450caa4681881977d
x86: Implement per-cpu vector for xen hypervisor

Since Xen and Linux has big differece in code base, it
is very hard to port Linux's patch and apply it to Xen
directly, so this patch only adopts core logic of Linux,
and make it work for Xen.

Key changes:
1. vector allocation algorithm
2. all IRQ chips' set_affinity logic
3. IRQ migration when cpu hot remove.
4. Break assumptions which depend on global vector policy.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
25 files changed:
xen/arch/x86/apic.c
xen/arch/x86/cpu/mcheck/mce_intel.c
xen/arch/x86/genapic/delivery.c
xen/arch/x86/genapic/x2apic.c
xen/arch/x86/hpet.c
xen/arch/x86/hvm/vmx/vmx.c
xen/arch/x86/i8259.c
xen/arch/x86/io_apic.c
xen/arch/x86/irq.c
xen/arch/x86/msi.c
xen/arch/x86/physdev.c
xen/arch/x86/setup.c
xen/arch/x86/smp.c
xen/arch/x86/smpboot.c
xen/drivers/passthrough/amd/iommu_init.c
xen/drivers/passthrough/vtd/iommu.c
xen/include/asm-x86/apic.h
xen/include/asm-x86/apicdef.h
xen/include/asm-x86/genapic.h
xen/include/asm-x86/irq.h
xen/include/asm-x86/mach-default/irq_vectors.h
xen/include/asm-x86/mach-generic/mach_apic.h
xen/include/asm-x86/smp.h
xen/include/xen/cpumask.h
xen/include/xen/irq.h